/*
 * @Description:
 * @Author: dh
 * @Date: 2021-09-28 14:19:19
 * @LastEditors: dh
 * @LastEditTime: 2025-09-15 14:20:13
 */

self.addEventListener('install', event => {
	console.log('正在注册！')
})

const cacheNames = ['sw_demo_v2'] // Cahce Stroage 白名单

this.addEventListener('activate', function (event) {
	console.log('正在激活')
	// 当有新的 service worker 文件存在的时候，他会被注册和安装，等待使用旧版本的页面全部被关闭后，才会被激活。
	// 这时候，我们就需要清理下我们的 Cache Stroage 了，删除旧版本的 Cache Stroage
	// 不是特别懂
	event.waitUntil(
		caches.keys().then(keys => {
			return Promise.all[
				keys.map(key => {
					if (!cacheNames.includes(key)) {
						console.log(key)
						return caches.delete(key) // 删除不在白名单中的 Cache Stroage
					}
				})
			]
		})
	)
})
